package com.ce.pms.charge.dao;

import java.util.List;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.charge.model.ChargeItemDomain;
import com.sitechasia.webx.core.support.Page;

public interface IChargeItemDao extends IPmsBaseDao<ChargeItemDomain> {
	/**
	 * 方法描述: 根据交易码ID查询收费项目
	 * @author 胡煦
	 * Create on:2008-12-3
	 * @param bizCodeId
	 * @return ChargeItemDomain
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public ChargeItemDomain findChargeItemDoByBizCode(Long bizCodeId);
	/**
	 * 方法描述: 查询最大的序号
	 * @author 胡煦
	 * Create on:2008-8-21
	 * @param
	 * @return short
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Short getMaxSeqNo();
	/**
	 * 方法描述: 分页查询收费项目列表,根据传入的不同参数：收费项目名字，序号，创建时间进行排序
	 * @author 胡煦
	 * Create on:2008-8-1
	 * @param int, int
	 * @return Page
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Page queryChargeItemByPage(int pageNo,int pageSize,String orderStr);
	/**
	 * 方法描述: 根据收费项目名字模糊查询收费项目LIST
	 * @author 胡煦
	 * Create on:2008-8-26
	 * @param chargeItemName
	 * @return List<ChargeItemDomain>
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List<ChargeItemDomain> queryChargeItemListByName(String chargeItemName);
	/**
	 * 方法描述: 根据收费项目序号查询记录数
	 *  注：新建判断seqNo的唯一性时，chargeItemId为null；修改判断seqNo的唯一性时，则需要传入修改前的chargeItemId<br>
	 * @author 胡煦
	 * Create on:2008-7-30
	 * @param seqNo，chargeItemId
	 * @return Long
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Long checkChargeItemSeqNoIsOnly(Short seqNo,Long chargeItemId);
	/**
	 * 方法描述: 根据收费类型和走表类型查询收费项目
	 * @author 胡煦
	 * Create on:2008-8-22
	 * @param type
	 * @return List<ChargeItemDomain>
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List<ChargeItemDomain> queryChargeItemListByType(String chrgType,String meterType);
//	/**
//	 * 方法描述: 分页查询收费项目列表
//	 * @author 胡煦
//	 * Create on:2008-8-1
//	 * @param int, int
//	 * @return Page
//	 * Edit author:
//	 * Edit on:
//	 * 修改原因：
//	 */
//	public Page queryChargeItemByPage(int pageNo,int pageSize);
	/**
	 * 方法描述:根据收费项目id字符串得到收费实体列表,filterSign 为true 则表示chargeItemIds是要过滤的id
	 * @author 胡煦
	 * Create on:2008-8-1
	 * @param pageNo, pageSize
	 * @return Page
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public List<ChargeItemDomain> queryChargeItemList(String chargeItemIds,boolean filterSign);
	/**
	 * 方法描述: 根据收费项目名称查询记录数
	 *  注：新建判断chargeItemName的唯一性时，chargeItemId为null；修改判断chargeItemName的唯一性时，则需要传入修改前的chargeItemId<br>
	 * @author 胡煦
	 * Create on:2008-8-1
	 * @param bankName
	 * @return Long
	 * Edit author:
	 * Edit on:
	 * 修改原因：
	 */
	public Long checkChargeItemNameIsOnly(String chargeItemName,Long chargeItemId);
}
